// 引入 dotenv
const dotenv = require("dotenv");
dotenv.config();

// --- 环境变量读取 ---
// 密钥
const JWT_SECRET = process.env.JWT_SECRET;

// 数据库
const DB_HOST = process.env.DB_HOST;
const DB_USER = process.env.DB_USER;
const DB_PASSWORD = process.env.DB_PASSWORD;
const DB_NAME = process.env.DB_NAME;

// Redis
const REDIS_PORT = process.env.REDIS_PORT;
const REDIS_HOST = process.env.REDIS_HOST;
// 图片地址
const IMG_URL = process.env.IMG_URL;

// --- 配置对象定义 ---
// 数据库配置
const DB_CONFIG = {
  host: DB_HOST,
  user: DB_USER,
  password: DB_PASSWORD,
  database: DB_NAME,
  waitForConnections: true,
  connectionLimit: 10,
  queueLimit: 0,
  dateStrings: true,
};

// Redis 连接配置
const REDIS_CONFIG = {
  port: parseInt(REDIS_PORT),
  host: REDIS_HOST,
};

// Token 状态管理配置
const TOKEN_CONFIG = {
  // Access Token 在 Redis 中的过期时间（单位：秒）
  EXPIRATION_SECONDS: parseInt(process.env.TOKEN_EXPIRATION_SECONDS), // 默认30分钟
  // Redis Key 前缀：用于存储 Token ID 状态
  TOKEN_PREFIX: process.env.REDIS_TOKEN_PREFIX,
};

// 导出整个配置对象
module.exports = {
  // 密钥配置
  JWT_SECRET,
  DB_CONFIG,
  REDIS_CONFIG,
  TOKEN_CONFIG,
  IMG_URL,
};
